برای مشاهده مفیدترین ارسال در این موضوع اینجا کلیک کنید

نمایش نتایج: از شماره 1 تا 3 از مجموع 3
Like Tree8نفر پسندیدند
  • 6 ارسال توسط MoJTaBa
  • 1 ارسال توسط MoJTaBa
  • 1 ارسال توسط Hossein

موضوع: ضرب دو عدد اعشاری ممیز ثابت Fixed Point

  1. #1
    مدیر بازنشسته
    تاریخ عضویت
    2011 October
    ارسال ها
    29
    تشکر
    118
    تشکر شده 153 بار در 36 پست
    نوشته های وبلاگ
    1


    1 امتياز مثبت از 1 راي
    آيا اين پست براي شما سودمند بود؟ بله | خیر

    ضرب دو عدد اعشاری ممیز ثابت Fixed Point

    عدد اعشاری ممیز ثابت Fixed Point :

    یکی دیگر از روش های نمایش اعداد اعشاری در زبان ماشین Fixed Point است. در این روش عدد را به صورت X.Yنمایش می دهند. که برای مثال X قسمت صحیح عدد بوده و در 8 بیت پر ارزش یک عدد 16 بیتی و Y قسمت اعشار و در 8 بیت کم ارزش آن قرار داده و محاسبات را به وسیله آن انجام می دهند.

    ضرب دو عدد به صورت Fixed Point :

    برای ضرب دو عدد به صورت Fixed Point باید دو عدد را طوری در هم ضرب کنیم که معادل هگز قسمت صحیح عدد به دهدهی در قسمت صحیح عدد نتیجه و معادل هگز قسمت اعشاری به دهدهی در قسمت اعشاری عدد نتیجه قرار گیرد.

    کد برنامه :

        PAGE 110,100
    TITLE 'MUL_FIXED_POINT.ASM' add two ASCII
    ;-----------------------------------------------
    ; Defining segment of program
    ; ---------------------------
    CODESG SEGMENT
    ASSUME SS:CODESG,DS:CODESG,CS:CODESG
    ORG 100H
    START: JMP MAIN ;1-Jump over data
    ;
    ; 1- Define data
    ; --------------

    A DW ? ;FIRST VALUE
    B DW ? ;SECOND VALUE
    R DD ?,? ;RESULT -->EXAMPLE: 365.912 BIT:0->32= 912 , BIT:32->64= 365
    NA DD ?
    NB DD ?
    A_BCD DB 6 DUP(?)
    B_BCD DB 6 DUP(?)
    R_BCD DB 12 DUP(?)
    ALEFT DB 0FFH
    ARIGHT DB 0FFH
    BLEFT DB 0EEH
    BRIGHT DB 0EEH
    COUNTA DB 0
    COUNTB DB 0
    COUNTR DB ?
    DIVT DD ?,?
    ;
    ; 2- The rest of instructions
    ; ---------------------------
    MAIN PROC NEAR
    ;

    MOV AL,ARIGHT
    MOV BYTE PTR A,AL
    MOV AL,ALEFT
    MOV BYTE PTR A+1,AL
    MOV AL,BRIGHT
    MOV BYTE PTR B,AL
    MOV AL,BLEFT
    MOV BYTE PTR B+1,AL
    ;
    ;////////////////////////////////////////////////////////////
    ;CONVERT INTERED VALUES TO BCD &COMPUTATION NUMBER OF DECIMAL PLACES IN A&B

    MOV AL,BYTE PTR A
    MOV AH,0
    MOV CL,10
    LEA SI,A_BCD
    ;
    FORA:
    MOV AH,0
    DIV CL
    INC COUNTA
    MOV [SI],AH
    INC SI
    CMP AL,0
    JA FORA
    ;
    MOV AL,BYTE PTR A+1
    MOV AH,0
    ;
    FORA2:
    MOV AH,0
    DIV CL
    MOV [SI],AH
    INC SI
    CMP AL,0
    JA FORA2

    ;
    MOV AL,BYTE PTR B
    MOV AH,0
    LEA SI,B_BCD
    ;
    FORB:
    MOV AH,0
    DIV CL
    INC COUNTB
    MOV [SI],AH
    INC SI
    CMP AL,0
    JA FORB
    ;
    MOV AL,BYTE PTR B+1
    MOV AH,0
    FORB2:
    MOV AH,0
    DIV CL
    MOV [SI],AH
    INC SI
    CMP AL,0
    JA FORB2
    ;//////////////////////////////////////////////////////////////
    ;CONVERT A TO CORRECT FORM
    MOV AL,A_BCD
    CBW
    MOV NA,AX
    MOV AL,A_BCD+1
    CBW
    MOV BX,10
    MUL BX
    ADD NA,AX
    MOV AL,A_BCD+2
    CBW
    MOV BX,100
    MUL BX
    ADD NA,AX
    MOV AL,A_BCD+3
    CBW
    MOV BX,1000
    MUL BX
    ADD NA,AX
    MOV AL,A_BCD+4
    CBW
    MOV BX,10000
    MUL BX
    ADD NA,AX
    ;/////////////
    MOV AL,A_BCD+5
    CBW
    MOV BX,86A0H
    MUL BX
    ADD NA,AX
    MOV NA+2,DX
    MOV AL,A_BCD+5
    CBW
    MOV BX,1H
    MUL BX
    CLC
    ADD NA+2,AX
    ADC NA+4,DX
    ;/////////////

    ;//////////////////////////////////////////////////////////////
    ;CONVERT B TO CORRECT FORM

    MOV AL,B_BCD
    CBW
    MOV NB,AX
    MOV AL,B_BCD+1
    CBW
    MOV BX,10
    MUL BX
    ADD NB,AX
    MOV AL,B_BCD+2
    CBW
    MOV BX,100
    MUL BX
    ADD NB,AX
    MOV AL,B_BCD+3
    CBW
    MOV BX,1000
    MUL BX
    ADD NB,AX
    MOV AL,B_BCD+4
    CBW
    MOV BX,10000
    MUL BX
    ADD NB,AX
    ;/////////////
    MOV AL,B_BCD+5
    CBW
    MOV BX,86A0H
    MUL BX
    ADD NB,AX
    MOV NB+2,DX
    MOV AL,B_BCD+5
    CBW
    MOV BX,1H
    MUL BX
    CLC
    ADD NB+2,AX
    ADC NB+4,DX
    ;/////////////

    ;//////////////////////////////////////////////////////////////
    ;MUL VALUES
    MOV AX,NA
    MOV BX,NB
    MUL BX
    MOV R,AX
    MOV R+2,DX
    MOV AX,NA+2
    MUL BX
    CLC
    ADD R+2,AX
    ADC R+4,DX
    ADC R+6,0
    MOV AX,NA
    MOV BX,NB+2
    MUL BX
    CLC
    ADD R+2,AX
    ADC R+4,DX
    ADC R+6,0
    MOV AX,NA+2
    MUL BX
    CLC
    ADD R+4,AX
    ADC R+6,DX
    ;///////////////////////////////////////////////////////////////
    ;COMPUTATION NUMBER OF DECIMAL PLACES IN RESULT
    MOV AL,COUNTA
    ADD AL,COUNTB
    MOV COUNTR,AL
    ;
    MOV CX,10
    MOV SI,0
    ;///////////////////////////////////////////////////////////////
    ;CONVERT RESULT TO BCD
    FOR1:

    MOV DIVT,0
    MOV DIVT+2,0
    MOV DIVT+4,0
    ;START DIV
    MOV AX, R+3
    MOV DX,0
    DIV CX
    ADD DIVT,AX
    ;
    SHL DIVT+1,8
    SHL DIVT,8
    MOV AX,R+2
    MOV AH,DL
    MOV DX,0
    DIV CX
    ADD DIVT,AX
    ;
    SHL DIVT+2,8
    SHL DIVT+1,8
    SHL DIVT,8
    MOV AX,R+1
    MOV AH,DL
    MOV DX,0
    DIV CX
    ADD DIVT,AX
    ;
    SHL DIVT+3,8
    SHL DIVT+2,8
    SHL DIVT+1,8
    SHL DIVT,8
    MOV AX,R
    MOV AH,DL
    MOV DX,0
    DIV CX
    ADD DIVT,AX
    ;END DIV
    MOV R_BCD[SI],DL
    MOV AX,DIVT
    MOV R,AX
    MOV AX,DIVT+2
    MOV R+2,AX
    MOV AX,DIVT+4
    MOV R+4,AX
    INC SI
    CMP R+2,0
    JNZ FOR1
    CMP R,0
    JNZ FOR1
    ;/////////////////////////////////////////////////////////////
    ;CONVERT DECIMAL & RIGHT PART OF BCD TO HEX
    MOV DI,WORD PTR COUNTR
    MOV AL,R_BCD
    CBW
    MOV R,AX
    DEC DI
    JZ POS1
    MOV AL,R_BCD+1
    CBW
    MOV BX,10
    MUL BX
    ADD R,AX
    DEC DI
    JZ POS1
    MOV AL,R_BCD+2
    CBW
    MOV BX,100
    MUL BX
    ADD R,AX
    DEC DI
    JZ POS1
    MOV AL,R_BCD+3
    CBW
    MOV BX,1000
    MUL BX
    ADD R,AX
    DEC DI
    JZ POS1
    MOV AL,R_BCD+4
    CBW
    MOV BX,10000
    MUL BX
    ADD R,AX
    DEC DI
    ;/////////////
    MOV AL,R_BCD+5
    CBW
    MOV BX,86A0H
    MUL BX
    ADD R,AX
    MOV R+2,DX
    MOV AL,R_BCD+5
    CBW
    MOV BX,1H
    MUL BX
    CLC
    ADD R+2,AX
    ;/////////////

    ;
    POS1:
    MOV SI,WORD PTR COUNTR
    MOV AL,R_BCD[SI]
    CBW
    MOV R+4,AX
    MOV AL,R_BCD[SI]+1
    CBW
    MOV BX,10
    MUL BX
    ADD R+4,AX
    MOV AL,R_BCD[SI]+2
    CBW
    MOV BX,100
    MUL BX
    ADD R+4,AX
    MOV AL,R_BCD[SI]+3
    CBW
    MOV BX,1000
    MUL BX
    ADD R+4,AX
    MOV AL,R_BCD[SI]+4
    CBW
    MOV BX,10000
    MUL BX
    ADD R+4,AX
    ;/////////////
    MOV AL,R_BCD[SI]+5
    CBW
    MOV BX,86A0H
    MUL BX
    ADD R+4,AX
    MOV R+6,DX
    MOV AL,R_BCD[SI]+5
    CBW
    MOV BX,1H
    MUL BX
    CLC
    ADD R+6,AX


    ;


    ;
    MOV AX,4C00H ;8- End of
    INT 21H ;9- processing
    MAIN ENDP ; End of procedure
    CODESG ENDS ; End of segment
    END START ; End of program
    ;By : Mojtaba Alizadeh Mojia91@yahoo.com


    موضوعات مشابه:
    فایل های پیوست شده
    ویرایش توسط MoJTaBa : 12th April 2012 در ساعت 10:53 PM
    Hossein, Mehdi, Shojaee و 3 نفر دیگر این نویسه را می پسندند.

  2. #2
    مدیر بازنشسته
    تاریخ عضویت
    2011 October
    ارسال ها
    29
    تشکر
    118
    تشکر شده 153 بار در 36 پست
    نوشته های وبلاگ
    1


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    کد برنامه و فایل توضیحات اضافه شد ، باشد برای آیندگان

    Hossein این نویسه را میپسندد.

  3. #3
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط MoJTaBa نمایش پست ها
    کد برنامه و فایل توضیحات اضافه شد ، باشد برای آیندگان
    سعی کن اسم و نام خانوادگیت رو هم ضمیمه سورس کنی که بعدا بدردت بخوره . ( هم تو فایل و هم تو پست اولت )

    MoJTaBa این نویسه را میپسندد.
    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




 

 

کاربران برچسب خورده در این موضوع

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  


Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Persian Language By Ustmb.ir
این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
ساعت 04:10 AM بر حسب GMT +4 می باشد.